package cn.stronglink.asset.module.dam.utils.factorys.req;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSON;

import cn.stronglink.asset.module.dam.entity.dev.AssetInfo;
import cn.stronglink.asset.module.dam.entity.message.MsgScreenCommand;
import cn.stronglink.asset.module.dam.utils.dataJsonUtils.realtime.send.MsgSendUtil;
import cn.stronglink.asset.module.dam.utils.dataJsonUtils.req.send.SendCmdUtil;
import cn.stronglink.asset.module.dam.utils.dataJsonUtils.req.send.TestCmdFormatUtil;
import cn.stronglink.asset.module.dam.utils.factorys.common.FactoryBatchUpdate;

public class Factory3AssetInfo {
	public static void open3AssertInfo(MsgScreenCommand bm, List<AssetInfo> info) {
		 String msg=getAssetListInfo(bm,info);// 获取机柜信息：控件更新指令
		
		 if(msg==null) return;
		 bm.getAwsPostdata().setCommand(msg);

		// 测试： 命令间隔一个空格
		MsgSendUtil.sendMsg(SendCmdUtil.topic, JSON.toJSONString(bm));// 发送消息
		System.out.println("\n\n");
		TestCmdFormatUtil.changeAndPrint(msg);
	}

	/**
	 * 获取资产列表：信息
	 */
	public static String getAssetListInfo(MsgScreenCommand bm,List<AssetInfo> list) {

		int i = 1;// 默认u位从： 1开始---设备按起始u排序后， 挨个显示 0--n
		if (list == null)
			return null;

		// 封装指令： map--键：位置； 值：数据参数
		Map<Integer, String> params = new HashMap<>();

		for (AssetInfo asset : list) {// 每个设备信息展示： 假设设备信息有排序==按u位升序

			
			int startu = asset.getStartU();
			int endu = asset.getEndU();
			// ====u位 起始u
			params.put(i, startu + "U");
			// ====u位 结束u
			params.put(++i, endu + "U");
			// ==== 编号
			params.put(++i, asset.getAssetNo() == null ? "" : asset.getAssetNo());
			// ==== 名称
			params.put(++i, asset.getAssetName() == null ? "" : asset.getAssetName());
			// ==== 状态
			/*// 状态(1.在库 2.已上架 3.报废 4.出库 5.已验收 )
			 * int status = asset.getAssetStatus(); if (status == 1) {
			 * buf.append(FactoryDatas.addData("在库")); } else if (status == 2) {
			 * buf.append(FactoryDatas.addData("已上架")); } else if (status == 3) {
			 * buf.append(FactoryDatas.addData("报废")); } else if (status == 4) {
			 * buf.append(FactoryDatas.addData("出库")); } else if (status == 5) {
			 * buf.append(FactoryDatas.addData("已验收 ")); }
			 */
			
			if (i % 20 == 0) {//  每20个控件指令--为一条命令
				String msg=FactoryBatchUpdate.updateTotalScreen(3, params);
				bm.getAwsPostdata().setCommand(msg);

				// 测试： 命令间隔一个空格
				MsgSendUtil.sendMsg(SendCmdUtil.topic, JSON.toJSONString(bm));// 发送消息
				System.out.println("\n\n");
				TestCmdFormatUtil.changeAndPrint(msg);
				params.clear();
				
				try {
					Thread.sleep(4000);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
			
			++i;
		} //for

		// 返回： 批量更新指令
		return FactoryBatchUpdate.updateTotalScreen(3, params);
	}

}
